Design Pattern in c